package ro.gillardon.commons.hotel;

import ro.gillardon.commons.Conditions;
import ro.gillardon.commons.enums.DayType;
import ro.gillardon.commons.enums.Hotel;
import ro.gillardon.commons.enums.RoomType;

/**
 * Wrapper class for all the parameters used by a hotel search query.
 */
public class HotelConditions extends Conditions {

  /** The room type. */
  private RoomType roomType;

  /** The day type. */
  private DayType dayType;

  /** The hotel id. */
  private final Hotel hotel;

  /**
   * Instantiates a new hotel conditions.
   *
   * @param roomType the room type
   * @param dayType the day type
   * @param hotelId the hotel id
   */
  public HotelConditions(final RoomType roomType, final DayType dayType, final Hotel hotel) {
    super();
    this.roomType = roomType;
    this.dayType = dayType;
    this.hotel = hotel;
  }

  public HotelConditions(final Hotel hotel) {
    this.hotel = hotel;
  }

  /**
   * Gets the room type.
   *
   * @return the room type
   */
  public RoomType getRoomType() {
    return this.roomType;
  }

  /**
   * Gets the day type.
   *
   * @return the day type
   */
  public DayType getDayType() {
    return this.dayType;
  }

  /**
   * Gets the hotel id.
   *
   * @return the hotel id
   */
  public Hotel getHotel() {
    return this.hotel;
  }
}
